package com.sxit.myproscenium.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户信息表
 *
 * @author wcn
 * @since 2022-04-10
 */
@TableName("sys_user")
@Schema(name = "User对象", description = "用户信息表")
public class User implements Serializable {

  private static final long serialVersionUID = 1L;

  @Schema(description = "用户ID")
  @TableId(value = "user_id", type = IdType.AUTO)
  private Long userId;

  @Schema(description = "部门ID")
  private Long deptId;

  @Schema(description = "用户账号")
  private String userName;

  @Schema(description = "用户昵称")
  private String nickName;

  @Schema(description = "用户类型（00系统用户）")
  private String userType;

  @Schema(description = "用户邮箱")
  private String email;

  @Schema(description = "手机号码")
  private String phonenumber;

  @Schema(description = "用户性别（0男 1女 2未知）")
  private String sex;

  @Schema(description = "头像地址")
  private String avatar;

  @Schema(description = "密码")
  private String password;

  @Schema(description = "微信")
  private String wxPassword;

  @Schema(description = "帐号状态（0正常 1停用）")
  private String status;

  @Schema(description = "删除标志（0代表存在 2代表删除）")
  private String delFlag;

  @Schema(description = "最后登录IP")
  private String loginIp;

  @Schema(description = "最后登录时间")
  private LocalDateTime loginDate;

  @Schema(description = "创建者")
  private String createBy;

  @Schema(description = "创建时间")
  private LocalDateTime createTime;

  @Schema(description = "更新者")
  private String updateBy;

  @Schema(description = "更新时间")
  private LocalDateTime updateTime;

  @Schema(description = "备注")
  private String remark;

  public String getWxPassword() {
    return wxPassword;
  }

  public void setWxPassword(String wxPassword) {
    this.wxPassword = wxPassword;
  }

  public Long getUserId() {
    return userId;
  }

  public void setUserId(Long userId) {
    this.userId = userId;
  }

  public Long getDeptId() {
    return deptId;
  }

  public void setDeptId(Long deptId) {
    this.deptId = deptId;
  }

  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }

  public String getNickName() {
    return nickName;
  }

  public void setNickName(String nickName) {
    this.nickName = nickName;
  }

  public String getUserType() {
    return userType;
  }

  public void setUserType(String userType) {
    this.userType = userType;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public String getPhonenumber() {
    return phonenumber;
  }

  public void setPhonenumber(String phonenumber) {
    this.phonenumber = phonenumber;
  }

  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }

  public String getAvatar() {
    return avatar;
  }

  public void setAvatar(String avatar) {
    this.avatar = avatar;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getStatus() {
    return status;
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public String getDelFlag() {
    return delFlag;
  }

  public void setDelFlag(String delFlag) {
    this.delFlag = delFlag;
  }

  public String getLoginIp() {
    return loginIp;
  }

  public void setLoginIp(String loginIp) {
    this.loginIp = loginIp;
  }

  public LocalDateTime getLoginDate() {
    return loginDate;
  }

  public void setLoginDate(LocalDateTime loginDate) {
    this.loginDate = loginDate;
  }

  public String getCreateBy() {
    return createBy;
  }

  public void setCreateBy(String createBy) {
    this.createBy = createBy;
  }

  public LocalDateTime getCreateTime() {
    return createTime;
  }

  public void setCreateTime(LocalDateTime createTime) {
    this.createTime = createTime;
  }

  public String getUpdateBy() {
    return updateBy;
  }

  public void setUpdateBy(String updateBy) {
    this.updateBy = updateBy;
  }

  public LocalDateTime getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(LocalDateTime updateTime) {
    this.updateTime = updateTime;
  }

  public String getRemark() {
    return remark;
  }

  public void setRemark(String remark) {
    this.remark = remark;
  }

  @Override
  public String toString() {
    return "User{"
        + "userId="
        + userId
        + ", deptId="
        + deptId
        + ", userName="
        + userName
        + ", nickName="
        + nickName
        + ", userType="
        + userType
        + ", email="
        + email
        + ", phonenumber="
        + phonenumber
        + ", sex="
        + sex
        + ", avatar="
        + avatar
        + ", password="
        + password
        + ", status="
        + status
        + ", delFlag="
        + delFlag
        + ", loginIp="
        + loginIp
        + ", loginDate="
        + loginDate
        + ", createBy="
        + createBy
        + ", createTime="
        + createTime
        + ", updateBy="
        + updateBy
        + ", updateTime="
        + updateTime
        + ", remark="
        + remark
        + "}";
  }
}
